package com.yyfax.pay.config.data.service;

import java.util.List;

import com.yyfax.pay.config.model.po.PaymentRoutePO;

/**
 * 商户银行支付路由信息
 * 
 * @author changxd
 * @date 2017-04-13
 * @since 1.0.0
 */
public interface PaymentRouteService {

	/**
	 * 新增商户银行支付路由信息
	 * 
	 * @author changxd
	 * @date 2017-04-13
	 * @since 1.0.0
	 * @param config
	 */
	public int save(PaymentRoutePO config) throws Exception;

	/**
	 * 修改商户银行支付路由信息
	 * 
	 * @author changxd
	 * @date 2017-04-13
	 * @since 1.0.0
	 * @param config
	 */
	public int modify(PaymentRoutePO config) throws Exception;

	/**
	 * 根据商户编号查询商户银行支付路由信息
	 * 
	 * @author changxd
	 * @date 2017-04-13
	 * @param merchantCode
	 * @since 1.0.0
	 */
	public List<PaymentRoutePO> queryByMerchantCode(String merchantCode) throws Exception;
	
	/**
	 * 查询用户支付路由信息
	 * 
	 * @author buyi
	 * @date 2017-09-13 10:57:52
	 * @since v2.0.0
	 *
	 * @param merchantCode 商户号
	 * @param subjectType 主体类型
	 * @param payMode 支付模式
	 * @return
	 * @throws Exception 
	 */
	public List<PaymentRoutePO> queryByMerchantCode(String merchantCode, String subjectType, String payMode) throws Exception;

	/**
	 * 根据商户编号和银行编号查询所有商户银行支付路由信息
	 * 
	 * @author changxd
	 * @date 2017-04-14
	 * @since 1.0.0
	 * @param merchantCode
	 * @param bankCode
	 * @return
	 * @throws Exception
	 */
	public PaymentRoutePO queryByBankCode(String merchantCode, String bankCode) throws Exception;

	/**
	 * 查询所有商户银行支付路由信息
	 * 
	 * @author changxd
	 * @date 2017-04-14
	 * @since 1.0.0
	 * @return
	 * @throws Exception
	 */
	public List<PaymentRoutePO> queryForList() throws Exception;

	/**
	 * 根据id查询所有商户银行支付路由信息
	 * 
	 * @author changxd
	 * @date 2017-04-14
	 * @since 1.0.0
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public PaymentRoutePO queryById(int id) throws Exception;
}
